home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / Falcon / CENTEK / CENTEK.DOC / RAM_RATE.TXT < prev    next >
Encoding:
Text File  |  1999-01-23  |  8.4 KB  |  197 lines

  1. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  2.   This is the french version. The english version will be available on our
  3. web site as soon as possible.
  4. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  5. CONSIDERATIONS TECHNIQUES - Rev. D
  6. Etude sur FALCON 
  7.           FALCON + CENTurbo II Rev B 
  8.  
  9. Rodolphe Czuba / CENTEK - JANVIER 99.
  10.  
  11. Toute utilisation de ce fichier à des fins commerciales est interdites.
  12. Toute utilisation de ce fichier à des fins pédagogique est autorisée !
  13. Toute publication est interdite sans l'autorisation écrite de l'Auteur.
  14.  
  15. Ce fichier est destiné à présenter quelques aspects techniques concernant
  16. les performances d'un processeur en fonction du bus et de la ram.
  17.  
  18. ******
  19. FALCON
  20. ******
  21.  
  22. Le système de base est un FALCON 030 équipé d'un MOTOROLA MC68030 16 MHz
  23. avec un bus 16-Bit.
  24.  
  25. Sur ce système, la ram est organisée en 2 bancs mémoires 16-Bit de 2 Mo
  26. chacun. Ce qui nous fait un total de 4 Mo qui est adressé en 32-Bit
  27. uniquement par le circuit vidéo (VIDEL). 
  28. L'intérêt des 2 bancs mémoires est l'entrelacement ou 'interleaving'.
  29. En effet, du point de vu MAPPING mémoire, l'accès à un WORD à une adresse
  30. word paire ($00, $04, $08, etc) se fait dans un banc mémoire 0 et l'accès
  31. à un WORD impaire ($02, $06, $0A, etc...) se fait dans l'autre banc
  32. mémoire (1).
  33. Ainsi lors d'accès séquentiels linéaires (dans beaucoup de cas), le
  34. processseur accède aux bancs 0, 1, 0, 1, 0, etc...
  35. Mais pourquoi ?
  36. Pour éviter de perdre des cycles en PRECHARGE TIME. Ce precharge time
  37. est le temps nécessaire et obligatoire entre 2 accès à une DRAM !
  38. Pour de la 60 ns, ce temps est de 40 ns; un cycle 16 MHz suffit donc. 
  39. Le temps du cyle complet de cette ram est de 110 ns !!
  40. La ram du F030 est de la 80 ns (cycle complet de 150 ns).
  41.  
  42. A la grande question, pourquoi le FALCON a un bus DATA 16-Bit, voici 
  43. l'hypothèse la plus probable:
  44. Pour permettre un bus DATA 32-Bit pour le CPU et garder en même temps 
  45. les performances avec l'entrelacement, il aurait fallu qu'Atari propose
  46. des configurations RAM de 2 ou 8 Mo. 2 est trop peu et 8, à l'époque,
  47. coûtait très cher...
  48.  
  49. Le 030 du FALCON accède en 4 cycles (16 MHz) à un banc. Un cycle dure 
  50. 62.5 ns. Ceci nous fait 4 x 62.5 = 250 ns. Ca passe largement, même si
  51. la ram d'origine est de la 80 ns !
  52. Le calcul de la bande passante de la ram (le nombre d'octets par seconde
  53. que l'on peut lire/envoyer de/dans la RAM) est le suivant:
  54. 1 WORD / 4 cycles d'horloge, soit 0.5 octets / cycles horloge.
  55.  
  56. Donc 0.5 x 16 000 000 = 8 Mo/s.
  57.  
  58. Ce que vous pouvez envoyer dans la RAM est une chose mais ce que le 
  59. processeur peut faire en est une autre.
  60. En effet, pour transférer entre de la RAM et un CPU, ce dernier doit 
  61. exécuter des instructions. La plus utilisée est un bon vieux MOVE.L
  62. qui nécessite 5 cycles d'horloge sur 030 (2 sur 040) et ceci est bien
  63. évidamment la plus rapide pour lire. Du coup, ces 8 Mo/s ne sont que
  64. théoriques et la réalité en est un peu différente :
  65. Sur un bus 16-Bit, le MOVE.L obligera le processeur à faire deux 
  66. sorties sur le bus pour lire/écrire 2 WORDS. Heureusement, ce type de 
  67. 'découpage' n'entraine pas de délais entre les deux WORDS.
  68.  
  69. De plus, il faut tenir compte du temps pris par les accès RAM pour
  70. alimenter le VIDEL. Ce temps peut prendre de 4 à 32 % de la bande
  71. passante du bus et donc réduire d'autant les performances d'accès du CPU.
  72. Ce problème n'existe pas avec de la FAST-Ram puisque cette dernière
  73. n'est pas utilisée par la vidéo...
  74. Prenons le cas du mode 640x480x2 couleurs (1 bit/pixel):
  75. Le nombre d'octets à transférer de la RAM à VIDEL (c'est COMBEL qui se 
  76. charge de les adresser) est de (640x480)/8 = 38400,
  77. soit 38400/4 = 9600 LONG (accès 32-Bit en RAM).
  78. Le VIDEL reçoit ces LONG par BURST de 17 LONG.
  79. Et le BURST se fait en 3, 1, 1, .....1, 1, 1 grâce au mode d'accès 
  80. FAST-PAGE de la ram 80 ns.
  81. Soit 9600/17 = 565 BURST (de 17 LONG),
  82. ce qui donne 565 x 19 = 10735 cycles pour une image.
  83. Pour une seconde (60 images puisque 60 Hz en VGA), il faut compter
  84. 10735 x 60 = 644 100 cycles.
  85. C'est en fait le temps pendant lequel le CPU ne peut pas profiter
  86. de la ST-Ram. 
  87. Ce qui représente 644 100 / 16 000 000 = 0.040, soit 4% !
  88. En mode 16 couleurs, cela grimpe à 16% (4 bits/pixel), et en mode TC
  89. on atteint les 32% (16-Bit/pixel mais seulement 320 pixel/ligne);
  90. ce qui fait ralentir la machine !
  91. Avec une CENTurbo II B, le bus du F030 passe à 50 MHz et on réduit
  92. ainsi à 20% pour le TC, 10.2% en 16 couleurs et 2.56% pour le mode
  93. 2 couleurs. On vous laisse calculer le mode 256 couleurs et
  94. découvrir une surprise...
  95.  
  96. Ainsi pour préciser les calculs, il faut compter:
  97. 16 000 000 - 644 100 = 15 355 900 cycles disponibles pour le
  98. CPU en mode monochrome 640x480.
  99.  
  100. Résumons:
  101. Le nombre d'octets chargables depuis la ST-Ram est: 
  102. (4 octets / 5 + 2 x 4) x 15 355 900     (5 cycles pour le MOVE.L)
  103. soit  4,72 Mo/s.
  104.  
  105. Pour affiner encore les calculs, quelques remarques:
  106.  
  107. 1 - Le mode BURST des CACHES du 030 n'est pas utilisable sur un bus 16 bits !
  108.  
  109. 2 - Ce débit ne tient pas compte des cycles de rafraichissement qui arrivent
  110. toutes les 15.6 uS et obligent le 030 à attendre (WAIT STATES !). Mais ces
  111. cycles sont les mêmes dans tous les sytèmes, alors nous les passeront sous
  112. silence. De toute façon, ils modifient de façon infime les performances des
  113. systèmes.
  114.  
  115. 3 - Ce calcul part du fait qu'on accède linéairement à la ram en continue,
  116. donc en profitant de l'entrelacement des bancs mémoires !
  117. Si on accède n'importe comment à la ram (déalignement du code !) ou si on
  118. accède au même banc mémoire (accès d'un word tous les 4 octets en ram)
  119. ($00, $04, $08 par exemple), on doit refaire la calcul:
  120. 1 LONG / (11 cycles + 2 cycles (temps de précharge à 16 MHz pour 
  121. chaque WORD). 
  122. On a donc 1 LONG / 13 cycles = 0.307 octets / s
  123. 0.307 x 16000000 = 4,9 Mo/s.
  124. AVIS A CEUX QUI PROGRAMMENT MAL !
  125.  
  126. 4 - Il est intéressant de faire une distinction entre la lecture et 
  127. l'écriture
  128. dans une DRAM, car si le hard est bien fait, il est possible d'écrire
  129. plus vite que de lire...
  130. C'est ce que vous pouvez constater dans les NEMBENCHS (5.3 / 6.4 sur 
  131. F030 d'origine et 32.5 / 38.9 sur CT2B).
  132.  
  133. 5 - La bande passante du bus est aussi conssommée par des circuits
  134. capables de devenir MASTER à la place du CPU. Sur Falcon, il y en a
  135. deux: le SDMA et le BLITTER.
  136.  
  137.  
  138. *************
  139. CENTurbo II B
  140. *************
  141.  
  142. Le plus grand point technique de la CENTurbo II est la FAST-Ram 32-Bit.
  143. En effet, cette ram autorise ENFIN le BURST (ou rafale) lors du
  144. chargement des caches du 030 !!
  145. Petit rappel: le BURST est un mode de chargement RAFALE d'une ligne
  146. d'un cache.
  147. Une ligne fait 16 octets (4 longs), soit l'équivalent de 4 accès au bus,
  148. mais en bien plus rapide.  
  149.  
  150. Le contrôleur de FAST-Ram est bien plus performant que celui de la
  151. ST-Ram du Falcon.
  152. - Il permet des accès séquentiels en 5 cycles d'horloge 50 MHz
  153.   en lecture et 4 cycles en écriture !
  154. - les cycles de rafraichissement durent 5 cycles d'horloge !
  155. - Il autorise le BURST !!! Avec un prgramme en FAST-Ram, le CPU
  156.   passe les 90% de son temps à 'BURSTER' pour son cache.
  157.  
  158. Ainsi, en 5 cycles 50 MHz, le 030 avale un LONG (4 octets) depuis
  159. la FAST-Ram en cas de NON BURST (rare),
  160. soit 4/(5+5)   5 cycles pour lire le bus et 5 pour exécuter le MOVE.L
  161. = 0.4 octet/cycle.
  162. soit, à 50 MHz, 0.4 x 50 000 000 = 20 Mo/s !
  163. Ça commence à chauffer !!
  164.  
  165. Passons au BURST:
  166.  
  167. Le BURST intervient dans pratiquement 100 % des cas si le code est aligné !!
  168. La lecture BURST de la CENTurbo 2 B est faite en 5, 2, 2, 2 à 50 MHz.
  169.  
  170. RAPPEL: Cette syntaxe technique signifie que le premier LONG est lu en 
  171.         5 cycles, et que les 3 suivants sont lus chacun en 2 cycles.
  172.         Soit un total de 16 octets en 11 cycles !
  173.                 
  174. Le calcul est donc le suivant:
  175. 16 octets / (11 + 5 x 3) cycles 50 MHz,
  176. soit 16 octets / 26 cycles 50 MHz
  177. = 0.61538 octets/s
  178. soit 0.61538 x 50 000 000 = 30.77 Mo/s !
  179.  
  180. Ceci fait un facteur de 30.77 / 5.3 = 5.8 fois plus rapide que le veau de 
  181. Falcon de base (mmeuuuhhhh !!). Il y a encore des gens qui travaillent avec
  182. un Falcon sans CENTurbo ??!
  183.  
  184. REMARQUE : Le BLITTER n'est pas utilisable sur CT2 du fait de son
  185. incapacité à adresser un espace 32-Bit d'adresse, dont la FAST-Ram (NVDI4
  186. est obligatoire !).
  187.  
  188. Cette petite 'étude' s'achève.
  189. Merci de votre attention et nous espérons que vous avez compris
  190. comment calculer des bandes passantes.
  191.  
  192.  CENTEK HOTLINE :
  193.  MARDI au SAMEDI de 21 à 23 Heures !
  194.  0344 746 330
  195.       
  196. CENTEK       
  197.